using System;
using System.Collections;
using System.Diagnostics;
using System.Text;
using ActiproSoftware.SyntaxEditor.Addons.Simple.Ast;

namespace ActiproSoftware.SyntaxEditor.Addons.Simple.Ast {

	/// <summary>
	/// Specifies the type of an <see cref="AstNode"/>.
	/// </summary>
	public enum SimpleNodeType {

		/// <summary>
		/// An assignment statement.
		/// </summary>
		AssignmentStatement,

		/// <summary>
		/// A binary expression.
		/// </summary>
		BinaryExpression,

		/// <summary>
		/// A block of statements.
		/// </summary>
		BlockStatement,

		/// <summary>
		/// A Simple language compilation unit.
		/// </summary>
		CompilationUnit,

		/// <summary>
		/// An empty statement.
		/// </summary>
		EmptyStatement,

		/// <summary>
		/// A function access expression.
		/// </summary>
		FunctionAccessExpression,

		/// <summary>
		/// A function declaration.
		/// </summary>
		FunctionDeclaration,

		/// <summary>
		/// An identifier.
		/// </summary>
		Identifier,

		/// <summary>
		/// A number expression.
		/// </summary>
		NumberExpression,

		/// <summary>
		/// A parenthesized expression.
		/// </summary>
		ParenthesizedExpression,

		/// <summary>
		/// A return statement.
		/// </summary>
		ReturnStatement,

		/// <summary>
		/// A simple name.
		/// </summary>
		SimpleName,

		/// <summary>
		/// A variable declaration statement.
		/// </summary>
		VariableDeclarationStatement,

	}

}
